package cn.b.sky.mes.mm.service;

import java.util.List;

import cn.b.sky.mes.mm.model.Distribution;
import cn.b.sky.mes.mm.model.condition.DistributionCondition;
import cn.b.sky.mes.mm.model.condition.DistributionKanBanCondition;

public interface DistributionService {
  /**
   * 
   * <strong>Title : getRequirementsKanBanByCondition<br></strong>
   * <strong>Description : 分页获取需求看板</strong><br> 
   * <strong>Create on : 2016-9-22 下午1:46:49<br></strong>
   * <p>
   * @param condition
   * @return
   * List<Requirement>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<Distribution> getRequirementsKanBanByCondition(DistributionKanBanCondition condition);
  
  int getRequirementsKanBanCountByCondition(DistributionKanBanCondition condition);
  
  /**
   * 
   * <strong>Title : selectDistributionListByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件查询配送单<br> 
   * <strong>Create on : 2016-9-23 上午10:36:32<br></strong>
   * <p>
   * @param condition
   * @return
   * List<Distribution>
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<Distribution> selectDistributionListByCondition(DistributionCondition condition);
  
  /**
   * 
   * <strong>Title : selectDistributionCountByCondition<br></strong>
   * <strong>Description : </strong>查询配送单行数<br> 
   * <strong>Create on : 2016-9-23 上午10:37:00<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectDistributionCountByCondition(DistributionCondition condition);
  
  /**
   * 
   * <strong>Title : getDistributionByNum<br></strong>
   * <strong>Description : </strong>查询配送单<br> 
   * <strong>Create on : 2016-9-23 上午10:44:01<br></strong>
   * <p>
   * @param siteCode
   * @param distributionNum
   * @return
   * Distribution
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  Distribution getDistributionByNum(String siteCode,String distributionNum);

  /**
   * 
   * <strong>Title : cancelDistribution<br></strong>
   * <strong>Description : </strong>取消配送单<br> 
   * <strong>Create on : 2016-9-25 下午2:26:28<br></strong>
   * <p>
   * @param siteCode
   * @param distributionNum
   * void
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void cancelDistribution(String siteCode, String distributionNum);

  /**
   * 
   * <strong>Title : confirmServedDistribution<br></strong>
   * <strong>Description : </strong>确认送达<br> 
   * <strong>Create on : 2016-9-25 下午2:40:52<br></strong>
   * <p>
   * @param siteCode
   * @param distributionNum
   * @param actualQuantity
   * void
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void confirmServedDistribution(String siteCode, String distributionNum, Double actualQuantity);

}
